package com.wuchengdong.web.extend.utils;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.concurrent.ThreadLocalRandom;

public class KeyGenerator {
    /**
     * 生成16位时间可读主键（时间戳数字[12位] + 随机字母[4位]）
     * 示例：202405232145A3F9（前12位：2024年5月23日21时45分）
     */
    public static String generateTimeKey() {
        // 1. 生成12位时间数字（yyyyMMddHHmm）
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmm");
        String timePart = LocalDateTime.now().format(formatter);

        // 2. 生成4位随机字母（大写）
        char[] randomChars = new char[4];
        for (int i = 0; i < 4; i++) {
            randomChars[i] = (char) ('A' + ThreadLocalRandom.current().nextInt(26));
        }

        return timePart + new String(randomChars);
    }
}
